/*
 * 
 * LegendShop 多用户商城系统
 * 
 *  版权所有,并保留所有权利。
 * 
 */
package com.legendshop.oa.dao.impl;

import com.legendshop.dao.impl.GenericDaoImpl;
import com.legendshop.dao.support.CriteriaQuery;
import com.legendshop.dao.support.EntityCriterion;
import com.legendshop.dao.support.PageSupport;
import com.legendshop.oa.constants.SysParamGroupEnum;
import com.legendshop.oa.dao.SystemParameterDao;
import com.legendshop.oa.model.SystemParameter;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 
 * LegendShop 版权所有 2009-2011,并保留所有权利。
 * ----------------------------------------------------------------------------
 * 提示：在未取得LegendShop商业授权之前，您不能将本软件应用于商业用途，否则LegendShop将保留追究的权力。
 * ----------------------------------------------------------------------------
 * 官方网站：http://www.legendesign.net
 * ----------------------------------------------------------------------------
 */
@Repository
public class SystemParameterDaoImpl extends GenericDaoImpl<SystemParameter, String> implements SystemParameterDao {

	@Override
	public void deleteSystemParameterById(String id) {
		deleteById(id);

	}

	@Override
	public void updateSystemParameter(SystemParameter systemParameter) {
		update(systemParameter);

	}

	@Override
	public List<SystemParameter> loadAll() {
		return queryAll();
	}

	@Override
	public SystemParameter getSystemParameterById(String name) {
		return this.getByProperties(new EntityCriterion().eq("name", name));
	}

	@Override
	public PageSupport<SystemParameter> querySystemParameter(CriteriaQuery cq) {
		return queryPage(cq);
	}

	@Override
	public List<SystemParameter> getSystemParameterByGroupId(String groupId) {
		return this.queryByProperties(new EntityCriterion().eq("groupId", groupId));
	}

	@Override
	public PageSupport<SystemParameter> getSystemParameterListPage(String curPageNO, SystemParameter systemParameter, String groupId) {
		CriteriaQuery cq = new CriteriaQuery(SystemParameter.class, curPageNO);
		cq.setPageSize(30);
		cq.eq("name", systemParameter.getName());
		cq.eq("changeOnline", "Y");
		cq.eq("groupId", SysParamGroupEnum.getName(groupId));
		cq.addOrder("asc", "displayOrder");
		return queryPage(cq);
	}

}
